﻿#ifndef PATTERNSTORE_H
#define PATTERNSTORE_H

#pragma once

#include <vector>
#include <QMainWindow>
#include <QPainterPath>


#endif // PATTERNSTORE_H

typedef struct storetext
{
    QString text;   //文本内容
    int radius;   //文本半径
    int font_size;   //文本字体大小（外半径）
    int angle;   //文本旋转角度
    int word_spacing;    //字间距,最终角度
    QString text_family;
    QPainterPath path;
}storetext;


typedef struct storerect
{
    int height;    //矩阵的长
    int width;     //矩阵的宽
    int x;   //矩阵位置x
    int y;   //矩阵位置y
}storerect;

typedef struct storeellipse
{

    int length;    //椭圆的长轴
    int width;     //椭圆的短轴
    int x;   //椭圆位置x
    int y;   //椭圆位置y
}storeellipse;

typedef struct storeline
{
    QPoint startPoint;
    QPoint endPoint;
}storeline;

typedef struct storecurve
{
    QPoint startPoint;
    QPoint point1;
    QPoint point2;
    QPoint endPoint;
}storecurve;

typedef struct storepicture   //素材库的图案总集
{
    QString p_text;   //文案的描述
    std::vector<storerect> p_rect;
    std::vector<storeellipse> p_ellipse;
    std::vector<storeline> p_line;
    std::vector<storecurve> p_curve;
    int radius = 100;   //整个图案围绕圆心的半径，初始为100，后面删除
    int angle = 30;    //整个图案旋转的角度，初始为30°，后面删除
}storepicture;

typedef struct pixpicture   //画布上的图案
{
    int sel_picture;   //被选中的素材库编号
    int radius;   //整个图案围绕圆心的半径，初始为50
    int angle;    //整个图案旋转的角度，初始为0°
    qreal scale;     //整个图案的缩放
}pixpicture;

class patternstore
{
public:
    std::vector<int> sel_picture;  //被选中的图案编号
    std::vector<storetext> p_text;
    storepicture p_picture[10];  //图案库的内容
    std::vector<pixpicture> p_layer;

    int picture_count = 0;   //图案总数计算
    int text_sel = -1;     //鼠标选中的文字
    //int
};



